package com.hemerasolutions.v2trainer.component.interfaces.detail;

import java.io.Serializable;

import javax.faces.event.ActionEvent;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.table.GroupedExerciseTableCompInterface;
import com.hemerasolutions.v2trainer.delegate.interfaces.ExerciseGroupDetailDelegateInterface;
import com.hemerasolutions.v2trainer.model.exercise.Exercise;
import com.hemerasolutions.v2trainer.model.exerciseGroup.ExerciseGroup;
import com.hemerasolutions.v2trainer.model.exerciseGroup.VersionableExerciseGroup;

public interface ExerciseGroupDetailsCompInterface extends BaseComponentInterface, Serializable {

	public abstract void setExercise(Exercise exercise);

	public abstract Exercise getExercise();

	public abstract void setExerciseDetails(ExerciseDetailsCompInterface exerciseDetails);

	public abstract ExerciseDetailsCompInterface getExerciseDetails();

	public abstract void setExerciseGroup(ExerciseGroup exerciseGroup);

	public abstract ExerciseGroup getExerciseGroup();

	public abstract void toViewExercise();

	public abstract void refresh();

	public void saveExerciseGroup(ActionEvent ev);

	public void createExerciseGroup(ActionEvent ev);

	public void cancelChange();

	public ExerciseGroupDetailDelegateInterface getDelegate();

	public void setDelegate(ExerciseGroupDetailDelegateInterface delegate);

	public VersionableExerciseGroup getVersionableExerciseGroup();

	public void setVersionableExerciseGroup(
			VersionableExerciseGroup versionableExerciseGroup);

	public abstract void setExerciseGroupTable(GroupedExerciseTableCompInterface exerciseGroupTable);

	public abstract GroupedExerciseTableCompInterface getExerciseGroupTable();

	void toSearchModality();

}
